package com.fuyao.cloud.admin.api.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fuyao.cloud.common.excel.annotation.ExcelLine;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户excel 对应的实体
 *
 * @author cloud
 * @date 2021/8/4
 */
@Data
@ColumnWidth(30)
public class UserExcelVO implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 导入时候回显行号
	 */
	@ExcelLine
	@ExcelIgnore
	private Long lineNum;
	/**
	 * 主键ID
	 */
	@ExcelProperty("用户编号")
	private Long userId;

	/**
	 * 人员编号
	 */
	@ExcelProperty("人员编号")
	private String personNum;

	/**
	 * 真实姓名
	 */
	@ExcelProperty("真实姓名")
	private String realName;

	/**
	 * 身份证号
	 */
	@ExcelProperty("身份证号")
	private String idNumber;

	/**
	 * 户口所在地
	 */
	@ExcelProperty("户口所在地")
	private String registerPermanentResidence;

	/**
	 * 职称
	 */
	@ExcelProperty("职称（正厅级、副厅级、正科级、副科级、科员、其他）")
	private String title;

	/**
	 * 职务
	 */
	@ExcelProperty("职务（局长、副局长、局长助理、总工程师、副总工程师、总经济师、副总经济师、局党委书记、局法律顾问、局技术顾问、船长、大队长、副大队长、处长、副处长、副处长(主持工作)、所长、副所长、副所长(主持工作)、主任、副主任、董事长、工会主席、副大队长(主持工作)、职工、党委书记）")
	private String post;

	/**
	 * 最高学历
	 */
	@ExcelProperty("最高学历（博士研究生、硕士研究生、双学士、本科毕业生、专科毕业生、高中、中专及中技毕业生、初中生及以下）")
	private String highestSchooling;

	/**
	 * 人员类型
	 */
	@ExcelProperty("人员类型(正式、返聘、合同、临时、退休)")
	private String personnelType;

	/**
	 * 用户名
	 */
	@NotBlank(message = "用户名不能为空")
	@ExcelProperty("用户名")
	private String username;

	/**
	 * 手机号
	 */
	@NotBlank(message = "手机号不能为空")
	@ExcelProperty("手机号")
	private String phone;

	/**
	 * 部门名称
	 */
	@NotBlank(message = "部门名称不能为空")
	@ExcelProperty("部门名称")
	private String deptName;

	/**
	 * 角色列表
	 */
	@NotBlank(message = "角色不能为空")
	@ExcelProperty("角色")
	private String roleNameList;

	/**
	 * 锁定标记
	 */
	@ExcelProperty("锁定标记,0:正常,9:已锁定")
	private String lockFlag;

	/**
	 * 创建时间
	 */
	@ExcelProperty(value = "创建时间")
	private LocalDateTime createTime;

	/**
	 * 昵称
	 */
	@ApiModelProperty(value = "昵称")
	private String nickname;
	/**
	 * 姓名
	 */
	@ApiModelProperty(value = "姓名")
	private String name;
	/**
	 * 邮箱
	 */
	@ApiModelProperty(value = "邮箱")
	private String email;

}
